package com.example.chapter12;


import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

/*
* 12.3.流的任务实施
* */
public class StreamExample {

    public static void main(String[] args) {
        // 创建一个整数列表
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

        // 使用流来过滤出偶数，映射每个偶数乘以2，并计算总和
        int sumOfDoubledEvens = numbers.stream()
                .filter(n -> n % 2 == 0) // 过滤出偶数
                .map(n -> n * 2) // 映射每个偶数乘以2
                .mapToInt(Integer::intValue) // 这步其实是多余的，因为已经是Integer流
                .sum(); // 计算总和（此时是IntStream的sum方法）

        // 输出结果
        System.out.println("The sum of doubled evens is: " + sumOfDoubledEvens);

        // 使用流来收集过滤后的偶数到一个新的列表
        List<Integer> doubledEvensList = numbers.stream()
                .filter(n -> n % 2 == 0)
                .map(n -> n * 2)
                .collect(Collectors.toList()); // 收集到列表

        // 输出结果
        System.out.println("The list of doubled evens is: " + doubledEvensList);
    }

}
